package com.chenziwen.scala.chapter06

object Scala_Trait3 {
  def main(args: Array[String]): Unit = {
    // 给对象动态添加功能
    // 在对象创建的时候可以动态混入（mixed in）特质
    val mysql = new MYSQL3 with Operate3
    mysql.insert(3)

    val mysqlabstract = new MYSQL3_ABSTRACT with Operate3
    mysqlabstract.insert(3)

    // 总结：创建对象的方式有如下几种
    // new
    // apply
    // 匿名子类
    // 动态混入
  }
}

trait Operate3 {
  def insert(id: Int): Unit = {
    println("插入数据 = " + id)
  }
}

class MYSQL3 {

}

abstract class MYSQL3_ABSTRACT {

}
